package echecs;

import expression.*;
import echecs.Pieces.Piece;
import echecs.Pieces.Piece.Couleur;
import java.util.ArrayList;
import java.util.List;

public class Etat implements Expression {

    private int pIndexDep;
    private Couleur pCouleur;
    private ArrayList<Coups> pListeCoups;
    private Piece[] pPieces;
    private Piece pPieceDep;
    private ArrayList<Coups> pListeCoupsPart;
    private int pDirIndex;
    private int pDist;
    private int pIndexArr;
    private boolean examineEchecs;

    public boolean getExamineEchecs() {
        return examineEchecs;
    }

    public List<Coups> getListeCoups() {
        return pListeCoups;
    }

    public int getIndexDep() {
        return pIndexDep;
    }

    public int getDirIndex() {
        return pDirIndex;
    }

    public int getDist() {
        return pDist;
    }

    public void incDirIndex() {
        pDirIndex++;
    }

    public void incDistIndex() {
        pDist++;
    }

    public void setDist(int pDist) {
        this.pDist = pDist;
    }

    public void setDirIndex(int pDirIndex) {
        this.pDirIndex = pDirIndex;
    }

    public void setIndexArr(int pIndexArr) {
        this.pIndexArr=pIndexArr;
    }

    public void setListeCoups(ArrayList<Coups> pListeCoups) {
        this.pListeCoups = pListeCoups;
    }

    public void setCouleur(Couleur pCouleur) {
        this.pCouleur = pCouleur;
    }

    public Couleur getCouleur() {
        return pCouleur;
    }

    public int incIndex() {
        return pIndexDep++;
    }

  

    public Etat() {
        this.pIndexDep = 0;
    }

    @Override
    public Object f(Etat a) {
        return this;
    }

    public void setListeCoupsPart(ArrayList<Coups> pListeCoupsPart) {
        this.pListeCoupsPart = pListeCoupsPart;
    }

    public ArrayList<Coups> getListeCoupsPart() {
        return pListeCoupsPart;
    }

    public void setPieces(Piece[] pPieces) {
        this.pPieces = pPieces;
    }

    public Piece[] getPieces() {
        return pPieces;
    }

    public Piece getPieceDep() {
        return pPieceDep;
    }

    public void setPieceDep(Piece pPieceDep) {
        this.pPieceDep = pPieceDep;
    }
}
